package cliente.pagina.contenido.comunicacionArchivo;

import cliente.pagina.contenido.*;
import cliente.pagina.*;
import comun.constantes.*;
import helpers.comunicacion.HelperComunicacion;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public abstract class ContenidoComunicacionArchivo extends VistaContenido {

  private int indiceMenor = 0;
  private int indiceMayor = 10;
  // esto es para saber quien es el contenido(pagina) padre del Recurso
  // se debe redefinir en cada una de las subclases que lo necesiten
  protected VistaContenido contenidoPadre = null;
  public ContenidoComunicacionArchivo() {
  }

  public ContenidoComunicacionArchivo(Pagina pagina) {
    super();
    this.setPagina(pagina);
  }

  // lo redefino porque necesito sacar los parametros del request que esta en la nueva pagina
  public void setPagina(Pagina pagina)
  {
    super.setPagina(pagina);

    if (pagina.getParameter(PARAMETROS_PAGINAS.INDICE_MENOR)!=null)
      this.indiceMenor = (new Integer(pagina.getParameter(PARAMETROS_PAGINAS.INDICE_MENOR))).intValue();

    if (pagina.getParameter(PARAMETROS_PAGINAS.INDICE_MAYOR)!=null)
      this.indiceMayor = (new Integer(pagina.getParameter(PARAMETROS_PAGINAS.INDICE_MAYOR))).intValue();


  }


  public String getTituloLink() {
    /**@todo Implement this cliente.pagina.contenido.VistaContenido abstract method*/
    throw new java.lang.UnsupportedOperationException("Method getTituloLink() not yet implemented.");
  }


 
  /**
   * Retorna el codigo html de la division contenido
   * @return
   */
  public String getHTMLVista()
  {
    HelperComunicacion helperComunicacion=null;
    try {
      helperComunicacion = new HelperComunicacion(this.getPagina());
      String html = "       <h1>"+this.getTitulo()+"</h1>";

      html += helperComunicacion.getHTMLComunicacionesCompletas(this.getNombreRecurso(),indiceMenor,indiceMayor);

      this.contenidoPadre.setPagina(this.getPagina());
      /*CODIGO AGREGADO POR GRUPO CONDE-PEREYRA - TEMA: FAQ*/
      //System.out.println("recursito("+this.contenidoPadre.getNombreRecurso()+")");
      if(this.contenidoPadre.getNombreRecurso().compareTo(RECURSOS.RESPUESTAS_FRECUENTES_FAQ_GPC)==0){
    	  html += "<div align=\"center\" class=\"linkVolver\" ><a href=\""+this.getPagina().getPathPaginas()+"faq_gpc.jsp?\">Volver a las Preguntas Frecuentes</a></div>\n";
      }else /*HASTA ACA*/
    	  html +=  "   <div align=\"center\" class=\"linkVolver\" ><a href=\""+this.contenidoPadre.getPathNombrePagina()+"\">Ir al inicio de "+this.getNombreRecurso().toLowerCase()+"</a></div>\n";
      helperComunicacion.commit();
      return html;
    }
    catch (Exception ex) {
      ex.printStackTrace();
      helperComunicacion.rollback();
      return  comun.MensajeDeError.ERROR_EN_LA_GENERACION_DE_LA_PAGINA;
    }
  }

// redefinirlos en cada subclase para formar mensajes
  abstract public String getNombreComunicacion();
  abstract public String getNombreComunicacionPlural();
  abstract public String getMensajeVolverPaginaPrincipalComunicacion();

// parte comun del titulo de todos los las paginas de archivo
  public String getRaizTitulo()
  {
    return "Ver todas las  ";
  }

  public String getTitulo() {
    /**@todo Implement this cliente.pagina.contenido.VistaContenido abstract method*/
    return this.getRaizTitulo()+this.getNombreComunicacionPlural();
  }

  public void setIndiceMenor(int indiceMenor) {
    this.indiceMenor = indiceMenor;
  }
  public int getIndiceMenor() {
    return indiceMenor;
  }
  public void setIndiceMayor(int indiceMayor) {
    this.indiceMayor = indiceMayor;
  }
  public int getIndiceMayor() {
    return indiceMayor;
  }

  static public ContenidoComunicacionArchivo getTipoComunicacionArchivo(String tipoComunicacion, Pagina pagina)
  {
  // DE ACUERDO AL TIPO DE COMUNICACION el CONTENIDO
  ContenidoComunicacionArchivo contenidoComunicacion = null;
  if (tipoComunicacion.compareTo(RECURSOS.NOTICIAS) == 0)
    contenidoComunicacion = new ContenidoNoticiasArchivo(pagina);

  if (tipoComunicacion.compareTo(RECURSOS.PIZARRON) == 0)
    contenidoComunicacion = new ContenidoPizarronArchivo(pagina);

  if (tipoComunicacion.compareTo(RECURSOS.CALENDARIO) == 0)
    contenidoComunicacion = new ContenidoCalendarioArchivo(pagina);

  if (tipoComunicacion.compareTo(RECURSOS.FAQ) == 0)
    contenidoComunicacion = new ContenidoFAQArchivo(pagina);

  if (tipoComunicacion.compareTo(RECURSOS.ANOTADOR) == 0)
	    contenidoComunicacion = new ContenidoAnotadorArchivo(pagina);
  
  /*CODIGO AGREGADO POR GRUPO CONDE-PEREYRA - TEMA: FAQ*/
  if (tipoComunicacion.compareTo(RECURSOS.PREGUNTAS_FRECUENTES_FAQ_GPC) == 0)
	    contenidoComunicacion = new ContenidoFAQGPCArchivo(pagina);
  
  if (tipoComunicacion.compareTo(RECURSOS.RESPUESTAS_FRECUENTES_FAQ_GPC) == 0)
	    contenidoComunicacion = new ContenidoFAQGPCArchivoRespuesta(pagina);
  /*HASTA ACA*/


  return contenidoComunicacion;
}

// redefinida para dar la subcarpeta donde se colocarta el archivo
public String getSubcarpetaRecurso()
{
  return "";
}


}